#pragma once

#include "CorProfilerCallbackImpl.h"

class CFunctionInfo
{
public:
	//ctor
	CFunctionInfo(FunctionID functionID);
	virtual ~CFunctionInfo();
	
	//call count helpers
	long GetCallCount();
	void IncrementCallCount();
	
	//public properties
	FunctionID functionID;
	ClassID classID;
	ModuleID moduleID;
	AssemblyID assemblyID;
	
	bool isStatic;
	bool toExclude;

	//String properties getter and setters
	void SetFuncName(WCHAR* funcName);
	WCHAR* GetFuncName();
	void SetClassName(WCHAR* className);
	WCHAR* GetClassName();
	void SetModuleName(WCHAR* moduleName);
	WCHAR* GetModuleName();
	void SetAssemblyName(WCHAR* assemblyName);
	WCHAR* GetAssemblyName();

private:
	long m_callCount;
	WCHAR* _funcName;
	WCHAR* _className;
	WCHAR* _moduleName;
	WCHAR* _assemblyName;
};
